#使用set()函数或者{}创建集合。
a = {1, 2, 3}
c= set("1,2,3") #集合中的元素是无序的，不允许重复
b = set({4, 5, 6})
print(a)
print(c)
print(b)

#使用set创建可变集合
a = set("abcdefg")
print(a)
set_one = set([1, 2, 3])
set_two = set((1, 2, 3))
set_three = set({1, 2, 3})
set_four = {1, 2, 3}
print(set_one)
print(set_two)
print(set_three)
print(set_four)
#可变是指集合的元素可以被修改，但集合本身是不可变的。
a.add(4)
print(a)

#不可变集合 frozenset
frozenset_one = frozenset(('a', 'c', 'b', 'e', 'd'))
frozenset_two = frozenset(['a', 'c', 'b', 'e', 'd'])
print(frozenset_one)
print(frozenset_two)


#add()方法:添加单个元素
#update()方法:添加多个元素
demo_set = set()
demo_set.add('py')
demo_set.update("thon")
print(demo_set)

#remove()方法:删除指定元素
remove_set = {'red', 'green', 'black'}
remove_set.remove('red')
print(remove_set)

#discard()方法:删除指定元素,如果元素不存在，不会报错
discard_set = {'python', 'php', 'java'}
discard_set.discard('java')
discard_set.discard('ios')
print(discard_set)

#pop()方法:随机删除一个元素
pop_set = {'green', 'blue', 'white'}
pop_set.pop()            # 随机删除
print(pop_set)

#clear()方法:清空集合
clear_set = {'red', 'green', 'black'}
clear_set.clear()
print(clear_set)

#集合的运算
#联合操作符 |
set_a={'a', 'c'}
set_b={'b', 'c'}
print(set_a | set_b)

#交集操作符 &
set_a={'a', 'c'}
set_b={'b', 'c'}
print(set_a & set_b)

#差集操作符 -
set_a={'a', 'c'}
set_b={'b', 'c'}
print(set_a - set_b)

#对称差集操作符 ^
set_a={'a', 'c'}
set_b={'b', 'c'}
print(set_a ^ set_b)

#案例：在一个班级里，有部分学生喜欢绘画，还有部分学生喜欢音乐。我们可以使用集合找出既喜欢绘画又喜欢音乐的学生。
painting_students = {'小明', '小红', '小刚'}
music_students = {'小刚', '小华', '小丽'}
both_students = painting_students & music_students
print("既喜欢绘画又喜欢音乐的学生有：", both_students)

